home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 25 / CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso / CUCD / Programming / Triton / Source / bench / bench.c next >
Encoding:
C/C++ Source or Header  |  1998-05-23  |  25.4 KB  |  648 lines

  1. /*
  2.  *  OpenTriton -- A free release of the triton.library source code
  3.  *  Copyright (C) 1993-1998  Stefan Zeiger
  4.  *
  5.  *  This program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2 of the License, or
  8.  *  (at your option) any later version.
  9.  *
  10.  *  This program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  *  GNU General Public License for more details.
  14.  *
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with this program; if not, write to the Free Software
  17.  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  *
  19.  *  bench.c - Triton benchmark
  20.  *
  21.  */
  22.  
  23.  
  24. /* /////////////////////////////////////////////////////////////////////////////////////////////////////// */
  25. /* ////////////////////////////////////////////////////////////////////////////////// Include our stuff // */
  26. /* /////////////////////////////////////////////////////////////////////////////////////////////////////// */
  27.  
  28. #include <stdio.h>
  29. #include <stdlib.h>
  30. #include <string.h>
  31. #include <time.h>
  32. #include <math.h>
  33.  
  34. #include <libraries/triton.h>
  35.  
  36. #include <proto/triton.h>
  37. #include <proto/dos.h>
  38. #include <proto/intuition.h>
  39.  
  40.  
  41. /* /////////////////////////////////////////////////////////////////////////////////////////////////////// */
  42. /* //////////////////////////////////////////////////////////////////////////// Disable CTRL-C handling // */
  43. /* /////////////////////////////////////////////////////////////////////////////////////////////////////// */
  44.  
  45. int CXBRK(void) { return(0); }
  46. int chkabort(void) { return(0); }
  47.  
  48.  
  49. /* /////////////////////////////////////////////////////////////////////////////////////////////////////// */
  50. /* ////////////////////////////////////////////////////////////////////////////////// Test Open & Close // */
  51. /* /////////////////////////////////////////////////////////////////////////////////////////////////////// */
  52.  
  53. STRPTR cycle_entries[]= { "Entry 0", "1", "2", "3", "4", "5", "6", "7", "8", "9", NULL };
  54. STRPTR mx_entries[]= { "Choice 0", "Choice 1", "Choice 2", NULL };
  55.  
  56. VOID test_open_close(VOID)
  57. {
  58.   ProjectDefinition(test_trwintags)
  59.   {
  60.     WindowTitle("Test"), WindowPosition(TRWP_CENTERDISPLAY), WindowID(1),
  61.   
  62.     TRMN_Title,                 (ULONG) "A menu",
  63.     TRMN_Item,                 (ULONG) "A simple item", TRAT_ID, 1,
  64.     TRMN_Item,                 (ULONG) "Another item", TRAT_ID, 2,
  65.     TRMN_Item,                 (ULONG) "And now... a barlabel", TRAT_ID, 3,
  66.     TRMN_Item,                 (ULONG) TRMN_BARLABEL,
  67.     TRMN_Item,                 (ULONG) "1_An item with a shortcut", TRAT_ID, 4,
  68.     TRMN_Item,                 (ULONG) "2_Another one", TRAT_ID, 5,
  69.     TRMN_Item,                 (ULONG) "3_And number 3", TRAT_ID, 6,
  70.     TRMN_Item,                 (ULONG) TRMN_BARLABEL,
  71.     TRMN_Item,                 (ULONG) "_F1_And under OS3.0: Extended command keys", TRAT_ID, 6,
  72.     TRMN_Item,                 (ULONG) "_F2_Another one", TRAT_ID, 7,
  73.     TRMN_Item,                 (ULONG) TRMN_BARLABEL,
  74.     TRMN_Item,                 (ULONG) "How do you like submenus?",
  75.     TRMN_Sub,                 (ULONG) "G_Great!", TRAT_ID, 8,
  76.     TRMN_Sub,                 (ULONG) "F_Fine", TRAT_ID, 9,
  77.     TRMN_Sub,                 (ULONG) "D_Don't know", TRAT_ID, 10,
  78.     TRMN_Sub,                 (ULONG) "N_Not so fine", TRAT_ID, 11,
  79.     TRMN_Sub,                 (ULONG) "P_Puke!", TRAT_ID, 12,
  80.     
  81.     TRMN_Title,                 (ULONG) "Another menu",
  82.     TRMN_Item,                 (ULONG) "This item is ghosted", TRMN_Flags, TRMF_DISABLED, TRAT_ID, 100,
  83.     TRMN_Item,                 (ULONG) TRMN_BARLABEL,
  84.     TRMN_Item,                 (ULONG) "Item 1 is checked", TRMN_Flags, TRMF_CHECKED, TRAT_ID, 13,
  85.     TRMN_Item,                 (ULONG) "Item 2 can be checked, too", TRMN_Flags, TRMF_CHECKIT, TRAT_ID, 14,
  86.  
  87.     TRMN_Title,                 (ULONG) "Ghosted menu",
  88.     TRMN_Flags,                 (ULONG) TRMF_DISABLED,
  89.     TRMN_Item,                 (ULONG) "Item 1", TRAT_ID, 101,
  90.     TRMN_Item,                 (ULONG) "Item 2", TRAT_ID, 102,
  91.  
  92.     TRGR_Vert,                  (ULONG) TRGR_PROPSHARE|TRGR_ALIGN,
  93.     
  94.     TROB_Space,               (ULONG) NULL,
  95.     
  96.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_CENTER,
  97.       TROB_Space,             (ULONG) NULL,
  98.     TROB_Line,              (ULONG) TROF_HORIZ,
  99.     TROB_Space,             (ULONG) NULL,
  100.     TROB_Text,              (ULONG) NULL, TRAT_Text, (ULONG) "GadTools", TRAT_Flags, (ULONG) TRTX_TITLE,
  101.     TROB_Space,             (ULONG) NULL,
  102.     TROB_Line,              (ULONG) TROF_HORIZ,
  103.     TROB_Space,             (ULONG) NULL,
  104.     TRGR_End,                 (ULONG) NULL,
  105.     
  106.     TROB_Space,               (ULONG) NULL,
  107.     
  108.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  109.     TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  110.     TROB_Space,           (ULONG) NULL,
  111.     TROB_CheckBox,        (ULONG) NULL,
  112.     TRAT_ID,            (ULONG) 1,
  113.     TRAT_Value,         (ULONG) TRUE,
  114.     TRGR_End,               (ULONG) NULL,
  115.     TROB_Space,             (ULONG) NULL,
  116.     TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  117.     TROB_Text,            (ULONG) NULL,
  118.     TRAT_Text,          (ULONG) "_Checkbox",
  119.     TRAT_ID,            (ULONG) 1,
  120.     TROB_Space,           (ULONG) NULL,
  121.     TRGR_End,               (ULONG) NULL,
  122.     TRGR_End,                 (ULONG) NULL,
  123.     
  124.     TROB_Space,               (ULONG) NULL,
  125.     
  126.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  127.     TRGR_Horiz,             (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
  128.     TROB_Space,           (ULONG) NULL,
  129.     TROB_Slider,          (ULONG) NULL,
  130.     TRAT_ID,            (ULONG) 4,
  131.     TRSL_Min,           (ULONG) 1,
  132.     TRSL_Max,           (ULONG) 3,
  133.           TRAT_Value,         (ULONG) 1,
  134.     TRGR_End,               (ULONG) NULL,
  135.     TROB_Space,             (ULONG) NULL,
  136.     TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  137.     TROB_Text,            (ULONG) NULL,
  138.     TRAT_Text,          (ULONG) "_Slider: ",
  139.     TRAT_ID,            (ULONG) 4,
  140.     TROB_Text,            (ULONG) NULL,
  141.     TRAT_Value,         (ULONG) 1,
  142.     TRAT_ID,            (ULONG) 4,
  143.     TRAT_MinWidth,      (ULONG) 3,
  144.       TROB_Space,             (ULONG) NULL,
  145.       TRGR_End,               (ULONG) NULL,
  146.     TRGR_End,                 (ULONG) NULL,
  147.  
  148.     TROB_Space,               (ULONG) NULL,
  149.  
  150.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  151.       TRGR_Horiz,             (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
  152.         TROB_Space,           (ULONG) NULL,
  153.         TROB_Scroller,        (ULONG) NULL,
  154.           TRAT_ID,            (ULONG) 5,
  155.           TRAT_Value,         (ULONG) 2,
  156.           TRSC_Total,         (ULONG) 7,
  157.           TRSC_Visible,       (ULONG) 3,
  158.       TRGR_End,               (ULONG) NULL,
  159.       TROB_Space,             (ULONG) NULL,
  160.       TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  161.         TROB_Text,            (ULONG) NULL,
  162.           TRAT_Text,          (ULONG) "Sc_roller: ",
  163.           TRAT_ID,            (ULONG) 5,
  164.         TROB_Text,            (ULONG) NULL,
  165.           TRAT_Value,         (ULONG) 2,
  166.           TRAT_ID,            (ULONG) 5,
  167.           TRAT_MinWidth,      (ULONG) 3,
  168.       TROB_Space,             (ULONG) NULL,
  169.       TRGR_End,               (ULONG) NULL,
  170.     TRGR_End,                 (ULONG) NULL,
  171.  
  172.     TROB_Space,               (ULONG) NULL,
  173.  
  174.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  175.       TRGR_Horiz,             (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
  176.         TROB_Space,           (ULONG) NULL,
  177.         TROB_Palette,         (ULONG) NULL,
  178.           TRAT_ID,            (ULONG) 3,
  179.           TRAT_Value,         (ULONG) 1,
  180.       TRGR_End,               (ULONG) NULL,
  181.       TROB_Space,             (ULONG) NULL,
  182.       TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  183.         TROB_Text,            (ULONG) NULL,
  184.           TRAT_Text,          (ULONG) "_Palette: ",
  185.           TRAT_ID,            (ULONG) 3,
  186.         TROB_Text,            (ULONG) NULL,
  187.           TRAT_Value,         (ULONG) 1,
  188.           TRAT_ID,            (ULONG) 3,
  189.           TRAT_MinWidth,      (ULONG) 3,
  190.       TROB_Space,             (ULONG) NULL,
  191.       TRGR_End,               (ULONG) NULL,
  192.     TRGR_End,                 (ULONG) NULL,
  193.  
  194.     TROB_Space,               (ULONG) NULL,
  195.  
  196.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  197.       TRGR_Horiz,             (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
  198.         TROB_Space,           (ULONG) NULL,
  199.         TROB_Cycle,           (ULONG) cycle_entries,
  200.           TRAT_ID,            (ULONG) 6,
  201.           TRAT_Value,         (ULONG) 4,
  202.       TRGR_End,               (ULONG) NULL,
  203.       TROB_Space,             (ULONG) NULL,
  204.       TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  205.         TROB_Text,            (ULONG) NULL,
  206.           TRAT_Text,          (ULONG) "C_ycle: ",
  207.           TRAT_ID,            (ULONG) 6,
  208.         TROB_Text,            (ULONG) NULL,
  209.           TRAT_Value,         (ULONG) 4,
  210.           TRAT_ID,            (ULONG) 6,
  211.           TRAT_MinWidth,      (ULONG) 3,
  212.       TROB_Space,             (ULONG) NULL,
  213.       TRGR_End,               (ULONG) NULL,
  214.     TRGR_End,                 (ULONG) NULL,
  215.  
  216.     TROB_Space,               (ULONG) NULL,
  217.  
  218.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  219.       TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  220.         TROB_Space,           (ULONG) NULL,
  221.         TROB_Cycle,           (ULONG) mx_entries,
  222.           TRAT_ID,            (ULONG) 13,
  223.           TRAT_Value,         (ULONG) 1,
  224.           TRAT_Flags,         (ULONG) TRCY_MX,
  225.       TRGR_End,               (ULONG) NULL,
  226.       TROB_Space,             (ULONG) NULL,
  227.       TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  228.         TROB_Text,            (ULONG) NULL,
  229.           TRAT_Text,          (ULONG) "_MX: ",
  230.           TRAT_ID,            (ULONG) 13,
  231.         TROB_Text,            (ULONG) NULL,
  232.           TRAT_Value,         (ULONG) 1,
  233.           TRAT_ID,            (ULONG) 13,
  234.           TRAT_MinWidth,      (ULONG) 3,
  235.         TROB_Space,           (ULONG) NULL,
  236.       TRGR_End,               (ULONG) NULL,
  237.     TRGR_End,                 (ULONG) NULL,
  238.  
  239.     TROB_Space,               (ULONG) NULL,
  240.  
  241.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  242.       TRGR_Horiz,             (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
  243.         TROB_Space,           (ULONG) NULL,
  244.         TROB_String,          (ULONG) "foo bar",
  245.           TRAT_ID,            (ULONG) 7,
  246.       TRGR_End,               (ULONG) NULL,
  247.       TROB_Space,             (ULONG) NULL,
  248.       TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  249.         TROB_Text,            (ULONG) NULL,
  250.           TRAT_Text,          (ULONG) "S_tring",
  251.           TRAT_ID,            (ULONG) 7,
  252.       TROB_Space,             (ULONG) NULL,
  253.       TRGR_End,               (ULONG) NULL,
  254.     TRGR_End,                 (ULONG) NULL,
  255.  
  256.     TROB_Space,               (ULONG) NULL,
  257.  
  258.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  259.       TRGR_Horiz,             (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
  260.         TROB_Space,           (ULONG) NULL,
  261.         TROB_String,          (ULONG) "",
  262.           TRAT_Flags,         (ULONG) TRST_INVISIBLE,
  263.           TRAT_ID,            (ULONG) 15,
  264.       TRGR_End,               (ULONG) NULL,
  265.       TROB_Space,             (ULONG) NULL,
  266.       TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  267.         TROB_Text,            (ULONG) NULL,
  268.           TRAT_Text,          (ULONG) "Pass_word",
  269.           TRAT_ID,            (ULONG) 15,
  270.       TROB_Space,             (ULONG) NULL,
  271.       TRGR_End,               (ULONG) NULL,
  272.     TRGR_End,                 (ULONG) NULL,
  273.  
  274.     TROB_Space,               (ULONG) NULL,
  275.  
  276.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_CENTER,
  277.       TROB_Space,             (ULONG) NULL,
  278.       TROB_Line,              (ULONG) TROF_HORIZ,
  279.       TROB_Space,             (ULONG) NULL,
  280.       TROB_Text,              (ULONG) NULL, TRAT_Text, (ULONG) "BOOPSI", TRAT_Flags, (ULONG) TRTX_TITLE,
  281.       TROB_Space,             (ULONG) NULL,
  282.       TROB_Line,              (ULONG) TROF_HORIZ,
  283.       TROB_Space,             (ULONG) NULL,
  284.     TRGR_End,                 (ULONG) NULL,
  285.  
  286.     TROB_Space,               (ULONG) NULL,
  287.  
  288.     TRGR_Horiz,               (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
  289.       TROB_Space,             (ULONG) NULL,
  290.       TROB_Button,            (ULONG) NULL, TRAT_ID, 2, TRAT_Text, (ULONG) "_Button",
  291.       TROB_Space,             (ULONG) NULL,
  292.     TRGR_End,                 (ULONG) NULL,
  293.  
  294.     TROB_Space,               (ULONG) NULL,
  295.  
  296.     TRGR_Horiz,               (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  297.       TROB_Space,             (ULONG) NULL,
  298.       TROB_Text,              (ULONG) NULL, TRAT_Text, (ULONG) "_File:", TRAT_ID, 10,
  299.       TROB_Space,             (ULONG) NULL,
  300.       TROB_Button,            (ULONG) TRBT_GETFILE, TRAT_ID, 10, TRAT_Text, (ULONG) "",
  301.       TROB_Space,             (ULONG) NULL,
  302.       TROB_Text,              (ULONG) NULL, TRAT_Text, (ULONG) "_Drawer:", TRAT_ID, 11,
  303.       TROB_Space,             (ULONG) NULL,
  304.       TROB_Button,            (ULONG) TRBT_GETDRAWER, TRAT_ID, 11, TRAT_Text, (ULONG) "",
  305.       TROB_Space,             (ULONG) NULL,
  306.       TROB_Text,              (ULONG) NULL, TRAT_Text, (ULONG) "_Entry:", TRAT_ID, 12,
  307.       TROB_Space,             (ULONG) NULL,
  308.       TROB_Button,            (ULONG) TRBT_GETENTRY, TRAT_ID, 12, TRAT_Text, (ULONG) "",
  309.       TROB_Space,             (ULONG) NULL,
  310.     TRGR_End,                 (ULONG) NULL,
  311.  
  312.     TROB_Space,               (ULONG) NULL,
  313.  
  314.   HorizGroupA, Space, VertGroupA,
  315.     Space,
  316.  
  317.     NamedFrameBox("PROPSHARE (default)"), ObjectBackfillWin, VertGroupA, Space, HorizGroupC,
  318.       Space,
  319.       Button("Short",1),
  320.       Space,
  321.       Button("And much, much longer...",2),
  322.       Space,
  323.       EndGroup, Space, EndGroup,
  324.  
  325.     Space,
  326.  
  327.     NamedFrameBox("EQUALSHARE"), ObjectBackfillWin, VertGroupA, Space, HorizGroupEC,
  328.       Space,
  329.       Button("Short",3),
  330.       Space,
  331.       Button("And much, much longer...",4),
  332.       Space,
  333.       EndGroup, Space, EndGroup,
  334.  
  335.     Space,
  336.  
  337.     NamedFrameBox("PROPSPACES"), ObjectBackfillWin, VertGroupA, Space, HorizGroupSC,
  338.       Space,
  339.       Button("Short",5),
  340.       Space,
  341.       Button("And much, much longer...",6),
  342.       Space,
  343.       EndGroup, Space, EndGroup,
  344.  
  345.     Space,
  346.  
  347.     NamedFrameBox("TRGR_ARRAY"), ObjectBackfillWin, VertGroupA, Space, LineArray,
  348.       BeginLine,
  349.         Space,
  350.         Button("Short",7),
  351.         Space,
  352.         Button("And much, much longer...",8),
  353.         Space,
  354.         EndLine,
  355.       Space,
  356.       BeginLine,
  357.         Space,
  358.         Button("Not so short",9),
  359.         Space,
  360.         Button("And a bit longer...",10),
  361.         Space,
  362.         EndLine,
  363.       Space,
  364.       BeginLineI,
  365.         NamedSeparator("An independent line"),
  366.         EndLine,
  367.       Space,
  368.       BeginLine,
  369.         Space,
  370.         Button("foo bar",12),
  371.         Space,
  372.         Button("42",13),
  373.         Space,
  374.         EndLine,
  375.       EndArray, Space, EndGroup,
  376.  
  377.     Space,
  378.     EndGroup, Space, EndGroup,
  379.  
  380.     TRGR_End,                 (ULONG) NULL,
  381.  
  382.     EndProject
  383.   };
  384.  
  385.   clock_t start,end;
  386.   int i;
  387.  
  388.   struct TR_Project *test_project;
  389.  
  390.   start=clock();
  391.   for(i=0;i<5;i++)
  392.   {
  393.     if(test_project=TR_OpenProject(Application,test_trwintags))
  394.     {
  395.       TR_CloseProject(test_project);
  396.     }
  397.     else fprintf(stderr,"Error: Can't open test window.\n");
  398.   }
  399.   end=clock();
  400.   printf("Opening & closing........: %d ms\n",(end-start)/5);
  401. }
  402.  
  403.  
  404. /* /////////////////////////////////////////////////////////////////////////////////////////////////////// */
  405. /* ///////////////////////////////////////////////////////////////////////////////////// Test Set & Get // */
  406. /* /////////////////////////////////////////////////////////////////////////////////////////////////////// */
  407.  
  408. VOID test_set_get(VOID)
  409. {
  410.   ProjectDefinition(test_trwintags)
  411.   {
  412.     WindowTitle("Test"), WindowPosition(TRWP_CENTERDISPLAY), WindowID(2),
  413.   
  414.     TRGR_Vert,                  (ULONG) TRGR_PROPSHARE|TRGR_ALIGN,
  415.     
  416.     TROB_Space,               (ULONG) NULL,
  417.     
  418.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_CENTER,
  419.       TROB_Space,             (ULONG) NULL,
  420.     TROB_Line,              (ULONG) TROF_HORIZ,
  421.     TROB_Space,             (ULONG) NULL,
  422.     TROB_Text,              (ULONG) NULL, TRAT_Text, (ULONG) "GadTools", TRAT_Flags, (ULONG) TRTX_TITLE,
  423.     TROB_Space,             (ULONG) NULL,
  424.     TROB_Line,              (ULONG) TROF_HORIZ,
  425.     TROB_Space,             (ULONG) NULL,
  426.     TRGR_End,                 (ULONG) NULL,
  427.     
  428.     TROB_Space,               (ULONG) NULL,
  429.     
  430.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  431.     TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  432.     TROB_Space,           (ULONG) NULL,
  433.     TROB_CheckBox,        (ULONG) NULL,
  434.     TRAT_ID,            (ULONG) 1,
  435.     TRAT_Value,         (ULONG) TRUE,
  436.     TRGR_End,               (ULONG) NULL,
  437.     TROB_Space,             (ULONG) NULL,
  438.     TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  439.     TROB_Text,            (ULONG) NULL,
  440.     TRAT_Text,          (ULONG) "_Checkbox",
  441.     TRAT_ID,            (ULONG) 1,
  442.     TROB_Space,           (ULONG) NULL,
  443.     TRGR_End,               (ULONG) NULL,
  444.     TRGR_End,                 (ULONG) NULL,
  445.     
  446.     TROB_Space,               (ULONG) NULL,
  447.     
  448.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  449.     TRGR_Horiz,             (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
  450.     TROB_Space,           (ULONG) NULL,
  451.     TROB_Slider,          (ULONG) NULL,
  452.     TRAT_ID,            (ULONG) 4,
  453.     TRSL_Min,           (ULONG) 1,
  454.     TRSL_Max,           (ULONG) 3,
  455.           TRAT_Value,         (ULONG) 1,
  456.     TRGR_End,               (ULONG) NULL,
  457.     TROB_Space,             (ULONG) NULL,
  458.     TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  459.     TROB_Text,            (ULONG) NULL,
  460.     TRAT_Text,          (ULONG) "_Slider: ",
  461.     TRAT_ID,            (ULONG) 4,
  462.     TROB_Text,            (ULONG) NULL,
  463.     TRAT_Value,         (ULONG) 1,
  464.     TRAT_ID,            (ULONG) 4,
  465.     TRAT_MinWidth,      (ULONG) 3,
  466.       TROB_Space,             (ULONG) NULL,
  467.       TRGR_End,               (ULONG) NULL,
  468.     TRGR_End,                 (ULONG) NULL,
  469.  
  470.     TROB_Space,               (ULONG) NULL,
  471.  
  472.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  473.       TRGR_Horiz,             (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
  474.         TROB_Space,           (ULONG) NULL,
  475.         TROB_Scroller,        (ULONG) NULL,
  476.           TRAT_ID,            (ULONG) 5,
  477.           TRAT_Value,         (ULONG) 2,
  478.           TRSC_Total,         (ULONG) 7,
  479.           TRSC_Visible,       (ULONG) 3,
  480.       TRGR_End,               (ULONG) NULL,
  481.       TROB_Space,             (ULONG) NULL,
  482.       TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  483.         TROB_Text,            (ULONG) NULL,
  484.           TRAT_Text,          (ULONG) "Sc_roller: ",
  485.           TRAT_ID,            (ULONG) 5,
  486.         TROB_Text,            (ULONG) NULL,
  487.           TRAT_Value,         (ULONG) 2,
  488.           TRAT_ID,            (ULONG) 5,
  489.           TRAT_MinWidth,      (ULONG) 3,
  490.       TROB_Space,             (ULONG) NULL,
  491.       TRGR_End,               (ULONG) NULL,
  492.     TRGR_End,                 (ULONG) NULL,
  493.  
  494.     TROB_Space,               (ULONG) NULL,
  495.  
  496.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  497.       TRGR_Horiz,             (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
  498.         TROB_Space,           (ULONG) NULL,
  499.         TROB_Palette,         (ULONG) NULL,
  500.           TRAT_ID,            (ULONG) 3,
  501.           TRAT_Value,         (ULONG) 1,
  502.       TRGR_End,               (ULONG) NULL,
  503.       TROB_Space,             (ULONG) NULL,
  504.       TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  505.         TROB_Text,            (ULONG) NULL,
  506.           TRAT_Text,          (ULONG) "_Palette: ",
  507.           TRAT_ID,            (ULONG) 3,
  508.         TROB_Text,            (ULONG) NULL,
  509.           TRAT_Value,         (ULONG) 1,
  510.           TRAT_ID,            (ULONG) 3,
  511.           TRAT_MinWidth,      (ULONG) 3,
  512.       TROB_Space,             (ULONG) NULL,
  513.       TRGR_End,               (ULONG) NULL,
  514.     TRGR_End,                 (ULONG) NULL,
  515.  
  516.     TROB_Space,               (ULONG) NULL,
  517.  
  518.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  519.       TRGR_Horiz,             (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
  520.         TROB_Space,           (ULONG) NULL,
  521.         TROB_Cycle,           (ULONG) cycle_entries,
  522.           TRAT_ID,            (ULONG) 6,
  523.           TRAT_Value,         (ULONG) 4,
  524.       TRGR_End,               (ULONG) NULL,
  525.       TROB_Space,             (ULONG) NULL,
  526.       TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  527.         TROB_Text,            (ULONG) NULL,
  528.           TRAT_Text,          (ULONG) "C_ycle: ",
  529.           TRAT_ID,            (ULONG) 6,
  530.         TROB_Text,            (ULONG) NULL,
  531.           TRAT_Value,         (ULONG) 4,
  532.           TRAT_ID,            (ULONG) 6,
  533.           TRAT_MinWidth,      (ULONG) 3,
  534.       TROB_Space,             (ULONG) NULL,
  535.       TRGR_End,               (ULONG) NULL,
  536.     TRGR_End,                 (ULONG) NULL,
  537.  
  538.     TROB_Space,               (ULONG) NULL,
  539.  
  540.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  541.       TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  542.         TROB_Space,           (ULONG) NULL,
  543.         TROB_Cycle,           (ULONG) mx_entries,
  544.           TRAT_ID,            (ULONG) 13,
  545.           TRAT_Value,         (ULONG) 1,
  546.           TRAT_Flags,         (ULONG) TRCY_MX,
  547.       TRGR_End,               (ULONG) NULL,
  548.       TROB_Space,             (ULONG) NULL,
  549.       TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  550.         TROB_Text,            (ULONG) NULL,
  551.           TRAT_Text,          (ULONG) "_MX: ",
  552.           TRAT_ID,            (ULONG) 13,
  553.         TROB_Text,            (ULONG) NULL,
  554.           TRAT_Value,         (ULONG) 1,
  555.           TRAT_ID,            (ULONG) 13,
  556.           TRAT_MinWidth,      (ULONG) 3,
  557.         TROB_Space,           (ULONG) NULL,
  558.       TRGR_End,               (ULONG) NULL,
  559.     TRGR_End,                 (ULONG) NULL,
  560.  
  561.     TROB_Space,               (ULONG) NULL,
  562.  
  563.     TRGR_Horiz,               (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
  564.       TRGR_Horiz,             (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
  565.         TROB_Space,           (ULONG) NULL,
  566.         TROB_String,          (ULONG) "foo bar",
  567.           TRAT_ID,            (ULONG) 7,
  568.       TRGR_End,               (ULONG) NULL,
  569.       TROB_Space,             (ULONG) NULL,
  570.       TRGR_Horiz,             (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
  571.         TROB_Text,            (ULONG) NULL,
  572.           TRAT_Text,          (ULONG) "S_tring",
  573.           TRAT_ID,            (ULONG) 7,
  574.       TROB_Space,             (ULONG) NULL,
  575.       TRGR_End,               (ULONG) NULL,
  576.     TRGR_End,                 (ULONG) NULL,
  577.  
  578.     TROB_Space,               (ULONG) NULL,
  579.  
  580.     TRGR_End,                 (ULONG) NULL,
  581.     EndProject
  582.   };
  583.  
  584.   clock_t start,end;
  585.   int i;
  586.  
  587.   struct TR_Message *trmsg;
  588.   struct TR_Project *test_project;
  589.  
  590.   if(test_project=TR_OpenProject(Application,test_trwintags))
  591.   {
  592.     start=clock();
  593.     for(i=0;i<50;i++)
  594.     {
  595.       TR_SetAttribute(test_project,1,TRAT_Value,i%2);
  596.       TR_SetAttribute(test_project,4,TRAT_Value,(i%2)+1);
  597.       TR_SetAttribute(test_project,5,TRAT_Value,i%2);
  598.       TR_SetAttribute(test_project,3,TRAT_Value,i%2);
  599.       TR_SetAttribute(test_project,6,TRAT_Value,i%2);
  600.       TR_SetAttribute(test_project,13,TRAT_Value,i%2);
  601.       TR_SetAttribute(test_project,7,NULL,(ULONG)"New string");
  602.  
  603.       TR_GetAttribute(test_project,1,TRAT_Value);
  604.       TR_GetAttribute(test_project,4,TRAT_Value);
  605.       TR_GetAttribute(test_project,5,TRAT_Value);
  606.       TR_GetAttribute(test_project,3,TRAT_Value);
  607.       TR_GetAttribute(test_project,6,TRAT_Value);
  608.       TR_GetAttribute(test_project,13,TRAT_Value);
  609.       TR_GetAttribute(test_project,7,NULL);
  610.  
  611.       while(trmsg=TR_GetMsg(Application)) TR_ReplyMsg(trmsg);
  612.     }
  613.     end=clock();
  614.     printf("Setting & getting........: %d ms\n",(end-start)/50);
  615.  
  616.     TR_CloseProject(test_project);
  617.   }
  618.   else fprintf(stderr,"Error: Can't open test window.\n");
  619. }
  620.  
  621.  
  622. /* /////////////////////////////////////////////////////////////////////////////////////////////////////// */
  623. /* ////////////////////////////////////////////////////////////////////////////////////// Main function // */
  624. /* /////////////////////////////////////////////////////////////////////////////////////////////////////// */
  625.  
  626. int main(void)
  627. {
  628.   if(TR_OpenTriton(TRITON13VERSION,
  629.            TRCA_Name,"TritonBench",
  630.            TRCA_LongName,"Triton benchmark",
  631.            TRCA_Version,"1.0",TAG_END))
  632.   {
  633.     fprintf(stderr,"\n\nPlease limit mouse movements for system accuracy...\n\n\n");
  634.     Delay(100);
  635.     printf("TritonBench © 1995 by Stefan Zeiger\n");
  636.     printf("=========================================\n");
  637.     test_open_close();
  638.     test_set_get();
  639.     printf("=========================================\n");
  640.     fprintf(stderr,"\nFinished.\n");
  641.  
  642.     TR_CloseTriton();
  643.     return 0;
  644.   } else puts("Can't open triton.library v4+.");
  645.  
  646.   return 20;
  647. }
  648.